﻿// ===============================================================================
//  Copyright © ymind.net. All rights reserved .
//  官方网站：http://ymind.net/
//  版权所有：彦铭工作室 老陈出品
// ===============================================================================

using System;
using System.Xml;
using Lcsoft.UrlRewriter.Conditions;
using Lcsoft.UrlRewriter.Utilities;

namespace Lcsoft.UrlRewriter.Parsers
{
	/// <summary>
	/// 提供解析请求类型的先决条件的功能。
	/// </summary>
	public sealed class MethodConditionParser : IRewriteConditionParser
	{
		#region IRewriteConditionParser Members

		/// <summary>
		/// 解析地址重写先决条件。
		/// </summary>
		/// <param name="node">包含地址重写先决条件信息的 <see cref="XmlNode"/>。</param>
		/// <returns>返回地址重写先决条件的实例。</returns>
		public IRewriteCondition Parse(XmlNode node)
		{
			if (node == null) throw new ArgumentNullException("node");
			if (node.Attributes == null) throw new ArgumentOutOfRangeException("node");

			var methodAttr = node.Attributes.GetNamedItem(Constants.AttrMethod);

			return methodAttr != null ? new MethodCondition(methodAttr.Value) : null;
		}

		#endregion
	}
}
